#ifndef ELEMENT_H_
#define ELEMENT_H_

class Random;

/// This class defines a procedural element

class Element
{
public:
	
	/// Draw a full pass of this object
	virtual void draw() = 0;
	
	/// Draw a scaled down pass of this object (for depth pass, etc.)
	virtual void drawSimple() = 0;
	
	virtual void drawShadow() = 0;
	
	virtual void generate( Random &r ) = 0;
	
};


#endif
